﻿using System;
using System.Collections.Generic;
using System.Linq;
using LayerData;
using LayerData.Hotel;
using LayerEntity.Hotel;
using System.Data;
namespace LayerLogic.Hotel
{
    public class LHabitacion
    {
        #region Variables
        internal DHabitacion common;
        public IPostgreSqlConnectionInfo CurrentConnection { get; set; }
        public delegate void Update(EnumOperaciones op);
        public event Update ActualizarLista = delegate { };
        readonly List<EHabitacion> listHabitaciones;
        DHabitacion ObjHbta;
        #endregion
        
        public LHabitacion(IPostgreSqlConnectionInfo con)
        {
            this.CurrentConnection = con;
            this.common = new DHabitacion(con);
            this.listHabitaciones = new List<EHabitacion>();
         //   ObjHbta = new DHabitacion(con);
        }

        public String MantenimientoHabitaciones(EHabitacion hbita, ETarifaHotel Etarifa, EnumOperaciones op)
        {
            return this.common.MantenimientoHabitaciones(hbita, Etarifa,(LayerData.EnumOperaciones)((int)op));
        }
        public string MantenimientoTarifas(ETarifaHotel Etarifa, EnumOperaciones op)
        {
            return this.common.MantenimientoTarifas(Etarifa, (LayerData.EnumOperaciones)((int)op));
        }

        #region Metodos
        public void AddHabitacion(EHabitacion ha)
        {
            this.listHabitaciones.Add(ha);
            this.ActualizarLista(EnumOperaciones.AddCollection);
        }
        #endregion
        #region Funciones
        public List<EHabitacion> GetHabitaciones() {
            return this.listHabitaciones;
        }
        public DataTable getHabitaciones(EHabitacion obj)
        {
            return this.common.getListadoHabitaciones(obj);
        }
        public DataTable getListadoTarifas(EHabitacion obj)
        {
            return this.common.getListadoTarifas(obj);
        }
        #endregion
    }
}